Distributed processing systems--ones comprising a plurality of processing entities or locations, referred to herein as nodes--often depend upon a database for their operation. Illustrative examples of such systems are a multiprocessor computer that stores operational data in a database, and a distributed switching system, such as a PBX with remote modules, that stores call processing translations in a database.
To avoid known difficulties associated with using either a fully-distributed or a fully-centralized database architecture, distributed processing systems often favor a database architecture which is intermediate between the two above-mentioned extremes: one wherein a "master" copy of the database is located at one, a central, node that manages the database centrally, but where "cache" copies of portions of the database are maintained locally at the other, peripheral, nodes. The peripheral nodes then communicate with the central node to obtain database information when that information is not in the local cache copy, and when updating their cache copies.
In distributed systems making use of this database architecture, the loss by a peripheral node of its database cache copy can adversely affect system performance. Such loss occurs, for example, if the peripheral node stores the cache copy in a volatile memory, such as a semiconductor memory, and it loses power to that memory. Even if the peripheral node stores the information in nonvolatile memory, such as a disk, it may lose the cache copy due to a node or a disk malfunction that multilates the data in the cache copy. In the event of such a loss, the peripheral node must obtain a fresh cache copy from the central node. The time spent by the central node in providing this fresh copy, and the time spent by the peripheral node in awaiting the fresh copy, is time taken away from the nodes' normal activities. In particular, when the cache copies and the master database do not have the same format, it is very time-consuming for the central node to translate the requisite database portion from "master" copy format--such as a format suitable for operator retrieval and display--into "cache" copy format--one suitable for transmission to the peripheral node and storage and use by the peripheral node. Hence, system performance suffers. It is therefore desirable to minimize the time spent in providing a peripheral node with a cache copy of the database.